#include "wxsdatepickerctrl.h"
#include <wx/datectrl.h>

namespace {
  wxsRegisterItem<wxsDatePickerCtrl> Reg( _T( "DatePickerCtrl" ), _T( "日期控件" ), wxsTWidget, _T( "对话框" ), 130 );
  WXS_ST_BEGIN( wxsDatePickerCtrlStyles, _T( "wxDP_DEFAULT|wxDP_SHOWCENTURY" ) )
  WXS_ST_CATEGORY( "wxDatePickerCtrl" )
  WXS_ST( wxDP_DEFAULT )
  WXS_ST( wxDP_SPIN )
  WXS_ST( wxDP_DROPDOWN )
  WXS_ST( wxDP_ALLOWNONE )
  WXS_ST( wxDP_SHOWCENTURY )
  WXS_ST_DEFAULTS()
  WXS_ST_END()
  WXS_EV_BEGIN( wxsDatePickerCtrlEvents )
  WXS_EVI( EVT_DATE_CHANGED, wxEVT_DATE_CHANGED, wxDateEvent, Changed )
  WXS_EV_END()
}

wxsDatePickerCtrl::wxsDatePickerCtrl( wxsItemResData* Data ):
  wxsWidget( Data, &Reg.Info, wxsDatePickerCtrlEvents, wxsDatePickerCtrlStyles ) {}

void wxsDatePickerCtrl::OnBuildCreatingCode() {
  switch( GetLanguage() ) {
    case wxsCPP: {
      AddHeader( _T( "<wx/datectrl.h>" ), GetInfo().ClassName, 0 );
      AddHeader( _T( "<wx/dateevt.h>" ), _T( "wxDateEvent" ), 0 );
      Codef( _T( "%C(%W, %I, wxDefaultDateTime, %P, %S, %T, %V, %N);\n" ) );
      BuildSetupWindowCode();
      return;
    }
    case wxsUnknownLanguage:
    default: {
      wxsCodeMarks::Unknown( _T( "wxsDatePickerCtrl::OnBuildCreatingCode" ), GetLanguage() );
    }
  }
}

wxObject* wxsDatePickerCtrl::OnBuildPreview( wxWindow* Parent, long Flags ) {
  wxDatePickerCtrl* Preview = new wxDatePickerCtrl( Parent, GetId(), wxDefaultDateTime, Pos( Parent ), Size( Parent ), Style() );
  return SetupWindow( Preview, Flags );
}

void wxsDatePickerCtrl::OnEnumWidgetProperties( M_Code_unused long Flags ) {
}
